home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / tegl6b.zip / INTROPAK.EXE / lha / TEGLINTR.DOC < prev    next >
Text File  |  1991-08-16  |  15KB  |  584 lines

  1. {-----------------------------------------------------------------------------}
  2. {               TEGL Windows ToolKit II                  }
  3. {          Copyright (C) 1990, 1991 TEGL Systems Corporation              }
  4. {                All Rights Reserved.                  }
  5. {-----------------------------------------------------------------------------}
  6. {$I switches.inc}
  7. {$F+}
  8.  
  9. Unit TEGLIntr;
  10.  
  11. INTERFACE
  12.  
  13. USES Dos,            {interrupt calls}
  14.      virtmem,
  15.      FastGrph;            {needed for ActivePage Variable}
  16.  
  17.  
  18. TYPE
  19.    FuncCallProc = Function:Boolean;
  20.  
  21.    KeyRecPtr = ^KeyFlags;
  22.    KeyFlags = RECORD
  23.          NextKeyFlag : KeyRecPtr;
  24.          Repeatkey   : Boolean;
  25.          KeyCode     : Word;
  26.          KeyCall     : FuncCallProc;
  27.           END;
  28.  
  29.    TimeRecPtr = ^TimeFlags;
  30.    TimeFlags = RECORD
  31.           NextTimeFlag : timerecptr;
  32.           TimerCount   : Word;
  33.           TimerStart   : Word;
  34.           TimerFlag    : Boolean;
  35.           TimerCall    : FuncCallProc;
  36.            END;
  37.  
  38.  
  39. const
  40.    TimerIgnore           : boolean = FALSE;
  41.    Timerbusy           : boolean = FALSE;
  42.    TimerCheck           : Boolean     = TRUE;
  43.    ControlBreakFlag    : Boolean     = FALSE;
  44.    CtrlBrkCount        : Word         = 0;
  45.  
  46.    Mouse_Event           : Word         = 0;
  47.    Mouse_Xcoord        : Integer     = 319;
  48.    Mouse_Ycoord        : Integer     = 174;
  49.    Mouse_Buttons       : Word         = 0;
  50.    Last_Mouse_Buttons  : Word         = 0; {used only by TEGLIntr.ASM}
  51.  
  52.    DoubleClickSpeed    : Word         = 6;
  53.  
  54.    LeftButtonDouble    : Boolean     = False;
  55.    LeftButtonTimeRem   : Word         = 0;
  56.    LeftButtonPress     : Word         = 0;
  57.    LeftPressXcoord     : Word         = 0;
  58.    LeftPressYcoord     : Word         = 0;
  59.    LeftButtonRelease   : Word         = 0;
  60.    LeftReleaseXcoord   : Word         = 0;
  61.    LeftReleaseYcoord   : Word         = 0;
  62.  
  63.    RightButtonDouble   : Boolean     = False;
  64.    RightButtonTimeRem  : Word         = 0;
  65.    RightButtonPress    : Word         = 0;
  66.    RightPressXcoord    : Word         = 0;
  67.    RightPressYcoord    : Word         = 0;
  68.    RightButtonRelease  : Word         = 0;
  69.    RightReleaseXcoord  : Word         = 0;
  70.    RightReleaseYcoord  : Word         = 0;
  71.  
  72.    MiddleButtonDouble  : Boolean     = False;
  73.    MiddleButtonTimeRem : Word         = 0;
  74.    MiddleButtonPress   : Word         = 0;
  75.    MiddlePressXcoord   : Word         = 0;
  76.    MiddlePressYcoord   : Word         = 0;
  77.    MiddleButtonRelease : Word         = 0;
  78.    MiddleReleaseXcoord : Word         = 0;
  79.    MiddleReleaseYcoord : Word         = 0;
  80.  
  81.    KBMouseBusy           : Boolean     = FALSE;
  82.    MouseShow           : Boolean     = FALSE;
  83.    MouseUserFlag       : Boolean     = FALSE;
  84.  
  85.    Mouse_MaxYpos       : Integer     = 349;
  86.    Mouse_MinYpos       : Integer     = 0;
  87.    Mouse_MaxXpos       : Integer     = 639;
  88.    Mouse_MinXpos       : Integer     = 0;
  89.  
  90.    FreezeCount           : Word = 0;
  91.  
  92.    Sk_NoShift        = $00;
  93.    Sk_RightShift    = $01;
  94.    Sk_LeftShift     = $02;
  95.    Sk_CtrlShift     = $04;
  96.    Sk_AltShift        = $08;
  97.    Sk_ScrollLock    = $10;
  98.    Sk_NumLock        = $20;
  99.    Sk_CapsLock        = $40;
  100.    Sk_InsLock        = $80;
  101.  
  102.    Key_ESC        = $01;
  103.    Key_a        = $1E;
  104.    Key_b        = $30;
  105.    Key_c        = $2E;
  106.    Key_d        = $20;
  107.    Key_e        = $12;
  108.    Key_f        = $21;
  109.    Key_g        = $22;
  110.    Key_h        = $23;
  111.    Key_i        = $17;
  112.    Key_j        = $24;
  113.    Key_k        = $25;
  114.    Key_l        = $26;
  115.    Key_m        = $32;
  116.    Key_n        = $31;
  117.    Key_o        = $18;
  118.    Key_p        = $19;
  119.    Key_q        = $10;
  120.    Key_r        = $13;
  121.    Key_s        = $1F;
  122.    Key_t        = $14;
  123.    Key_u        = $16;
  124.    Key_v        = $2F;
  125.    Key_w        = $11;
  126.    Key_x        = $2D;
  127.    Key_y        = $15;
  128.    Key_z        = $2C;
  129.  
  130.    Key_1        = $02;
  131.    Key_2        = $03;
  132.    Key_3        = $04;
  133.    Key_4        = $05;
  134.    Key_5        = $06;
  135.    Key_6        = $07;
  136.    Key_7        = $08;
  137.    Key_8        = $09;
  138.    Key_9        = $0A;
  139.    Key_0        = $0B;
  140.  
  141.    Key_F1        = $3B;
  142.    Key_F2        = $3C;
  143.    Key_F3        = $3D;
  144.    Key_F4        = $3E;
  145.    Key_F5        = $3F;
  146.    Key_F6        = $40;
  147.    Key_F7        = $41;
  148.    Key_F8        = $42;
  149.    Key_F9        = $43;
  150.    Key_F10        = $44;
  151.  
  152.    Key_Space        = $39;
  153.    Key_Enter        = $1C;
  154.    Key_Tab        = $0F;
  155.    Key_SysReq        = $54;
  156.    Key_BackSpace    = $0E;
  157.    Key_Ins        = $52;
  158.    Key_Del        = $53;
  159.  
  160.    Key_Home        = $47;
  161.    Key_UpArrow        = $48;
  162.    Key_PgUp        = $49;
  163.    Key_LeftArrow    = $4B;
  164.    Key_RightArrow    = $4D;
  165.    Key_DownArrow    = $50;
  166.    Key_End        = $4F;
  167.    Key_PgDn        = $51;
  168.  
  169.    Key_NumLock        = $45;
  170.    Key_ScrollLock    = $46;
  171.    Key_Ctrl        = $1D;
  172.    Key_shift        = $2A;
  173.    Key_Alt        = $38;
  174.    Key_CapsLock     = $3A;
  175.  
  176.    Key_minus        = $0C;
  177.    Key_equal        = $0D;
  178.    Key_period        = $34;
  179.    Key_lbracket     = $1A;
  180.    Key_rbracket     = $1B;
  181.    Key_coma        = $33;
  182.    Key_semi        = $27;
  183.    Key_rquote        = $28;
  184.    Key_lquote        = $29;
  185.    Key_asterisk     = $37;
  186.    Key_GrayMinus    = $4A;
  187.    Key_Center5        = $4C;
  188.    Key_GrayPlus     = $4E;
  189.  
  190.    Key_backslash    = $2B;
  191.    Key_forwslash    = $35;
  192.  
  193.  
  194.    PointingHand: MaskType =
  195.      (($E1FF,$E1FF,$E1FF,$E1FF,$E1ff,$E000,$E000,$e000,   { Screen Mask }
  196.        $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000),
  197.  
  198.       ($1E00,$1200,$1200,$1200,$1200,$13ff,$1249,$1249,   { Cursor Mask }
  199.        $1249,$9001,$9001,$9001,$8001,$8001,$8001,$FFFF));
  200.  
  201.    HourGlass: MaskType =
  202.      (($0000,$0000,$0000,$0000,$8001,$C003,$E007,$F00F,
  203.        $E007,$C003,$8001,$0000,$0000,$0000,$0000,$FFFF),
  204.  
  205.       ($0000,$7FFE,$6006,$300C,$1818,$0C30,$0660,$03C0,
  206.        $0660,$0C30,$1998,$33CC,$67E6,$7FFE,$0000,$0000));
  207.  
  208.    Standard: MaskType =
  209.      (($3FFF,$1FFF,$0FFF,$07FF,$03FF,$01FF,$00FF,$007F,
  210.        $003F,$001F,$01FF,$10FF,$30FF,$F87F,$F87F,$FC7F),
  211.  
  212.       ($0000,$4000,$6000,$7000,$7800,$7C00,$7E00,$7F00,
  213.        $7F80,$7C00,$6C00,$4600,$0600,$0300,$0300,$0000));
  214.  
  215.    DiagCross: MaskType =
  216.      (($07E0,$0180,$0000,$C003,$F00F,$C003,$0000,$0180,
  217.        $07E0,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF),
  218.  
  219.       ($0000,$700E,$1C38,$0660,$03C0,$0660,$1C38,$700E,
  220.        $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000));
  221.  
  222.    CheckMark: MaskType =
  223.      (($FFF0,$FFE0,$FFC0,$FF03,$0607,$000F,$001F,$C03F,
  224.        $F07F,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF),
  225.  
  226.        ($0000,$0006,$000C,$0018,$0030,$0060,$70C0,$1D80,
  227.     $0700,$0000,$0000,$0000,$0000,$0000,$0000,$0000));
  228.  
  229.    MaskCURSOR : Masktype =
  230.      (($07FF,$07FF,$07FF,$8FFF,$8FFF,$8FFF,$8FFF,$8FFF,
  231.        $8FFF,$8FFF,$8FFF,$07FF,$07FF,$07FF,$FFFF,$FFFF),
  232.  
  233.       ($0000,$7000,$2000,$2000,$2000,$2000,$2000,$2000,
  234.        $2000,$2000,$2000,$2000,$7000,$0000,$0000,$0000));
  235.  
  236.    ScancodeTable       : Array [1..127] of Boolean =
  237.              (
  238.          {code 01}      FALSE,          {ESC}
  239.          {code 02}      FALSE,          {1}
  240.          {code 03}      FALSE,          {2}
  241.          {code 04}      FALSE,          {3}
  242.          {code 05}      FALSE,          {4}
  243.          {code 06}      FALSE,          {5}
  244.          {code 07}      FALSE,          {6}
  245.          {code 08}      FALSE,          {7}
  246.          {code 09}      FALSE,          {8}
  247.          {code 0A}      FALSE,          {9}
  248.          {code 0B}      FALSE,          {0}
  249.          {code 0C}      FALSE,          {-}
  250.          {code 0D}      FALSE,          {=}
  251.          {code 0E}      FALSE,          {BackSpace}
  252.          {code 0F}      FALSE,          {Tab}
  253.          {code 10}      FALSE,          {q}
  254.          {code 11}      FALSE,          {w}
  255.          {code 12}      FALSE,          {e}
  256.          {code 13}      FALSE,          {r}
  257.          {code 14}      FALSE,          {t}
  258.          {code 15}      FALSE,          {y}
  259.          {code 16}      FALSE,          {u}
  260.          {code 17}      FALSE,          {i}
  261.          {code 18}      FALSE,          {o}
  262.          {code 19}      FALSE,          {p}
  263.          {code 1A}      FALSE,          {[}
  264.          {code 1B}      FALSE,          {]}
  265.          {code 1C}      FALSE,          {Enter}
  266.          {code 1D}      FALSE,          {Ctrl}
  267.          {code 1E}      FALSE,          {a}
  268.          {code 1F}      FALSE,          {s}
  269.          {code 20}      FALSE,          {d}
  270.          {code 21}      FALSE,          {f}
  271.          {code 22}      FALSE,          {g}
  272.          {code 23}      FALSE,          {h}
  273.          {code 24}      FALSE,          {j}
  274.          {code 25}      FALSE,          {k}
  275.          {code 26}      FALSE,          {l}
  276.          {code 27}      FALSE,          {;}
  277.          {code 28}      FALSE,          {'}
  278.          {code 29}      FALSE,          {`}
  279.          {code 2A}      FALSE,          {shift}
  280.          {code 2B}      FALSE,          {\}
  281.          {code 2C}      FALSE,          {z}
  282.          {code 2D}      FALSE,          {x}
  283.          {code 2E}      FALSE,          {c}
  284.          {code 2F}      FALSE,          {v}
  285.          {code 30}      FALSE,          {b}
  286.          {code 31}      FALSE,          {n}
  287.          {code 32}      FALSE,          {m}
  288.          {code 33}      FALSE,          {,}
  289.          {code 34}      FALSE,          {.}
  290.          {code 35}      FALSE,          {/}
  291.          {code 36}      FALSE,
  292.          {code 37}      FALSE,          {Gra